Exception in thread main java.lang.NumberFormatException: For input string: "1234 "
Exception in thread "main" java.lang.NumberFormatException: For input string: "1234 "
บทความนี้ ขอเสนอ Exception ที่เคยเจอในการเขียนโปรแกรมกัน ซึ่ง Exception นี้จะมีลักษณะข้อความคล้าย ๆ แบบนี้Exception in thread "main" java.lang.NumberFormatException: For input string: "1234 " at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at com.doesystem.CodeFromDoesystem.main(CodeFromDoesystem.java:6)
จากข้อความ Exception ข้างบนเราสามารถแปลข้อความบางส่วนได้ ดังนี้
Exception เกิด Exception
thread "main" ก็คือ thread ที่ชื่อว่า main
NumberFormatException เกิด Exception ชนิด NumberFormatException
For input string: "1234 " ก็คือ input ที่เป็น ข้อความ 1234 แล้วก็ค่าว่าง
at java.lang.Integer.parseInt ก็คือ เกิดที่ package java.lang แล้วก็เกิดที่ Class Integer แล้วก็ที่ method ที่ชื่อว่า parseInt
ถ้านำมารวม ๆ กันแล้วอาจจะได้ว่า เกิด Exception ที่ thread main เป็น Exception ชนิด NumberFormatException แล้วก็เกิดที่ Class Integer ที่ method parseInt
เมื่อเรามาดูโค้ดตามด้านล่าง
package com.doesystem; public class CodeFromDoesystem { public static void main(String[] args) throws Exception { String a = "1234 "; Integer.parseInt(a); } }
เมื่อเห็นโค้ดและ Exception เราก็จะรู้ได้เลยว่า เป็นข้อผิดพลาดทางการแปลงตัวอักษรเป็นตัวเลข
จากโค้ดและ Exception เรายังได้เรียนรู้การแปล Exception เพิ่มขึ้น คือ
Exception in thread "main" เป็น Exception ที่เกิดขึ้นใน thread main
java.lang.NumberFormatException เป็นชนิดของ Exception ที่เกี่ยวกับรูปแบบของตัวเลข
For input string: "1234 " ก็คือ การใส่ตัวอักษรด้วย "1234 "
at java.lang.Integer.parseInt ก็คือ เกิดที่ package java.lang แล้วก็เกิดที่ Class Integer แล้วก็ที่ method ที่ชื่อว่า parseInt
CodeFromDoesystem.java:6 เป็นการบอกว่าชื่อไฟล์ CodeFromDoesystem.java และเกิด Exception บรรทัดที่ 6